home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 32
/
Mac Magazin and MacEasy Magazine CD - Issue 32.iso
/
Multimedia
/
MIDI
/
MidiChaos_15 Folder
/
MidiChaos_1.5
/
README
< prev
Wrap
Text File
|
1996-11-17
|
10KB
|
226 lines
About MidiChaos-
Shareware by Darren Gibbs
P.O. Box 9343
Oakland, CA 94613
darren@tetraktys.com
OVERVIEW:
MidiChaos is an application/utility/game/composition tool
conceived by Peter Randlette and I in 1989 at The Evergreen State
College in Olympia, Washington. It is implemented in HMSL (a
Forth based composition language developed here at the Mills
College Center for Contemporary Music) and since its primitive
beginnings has evolved, with help from Phil Burk, into a fairly
interesting bit of software. Basically, it allows one to map the
output from chaotic equations to the Midi parameters of pitch,
velocity, and duration.
Exciting features:
- Easy To Use Graphical interface
- Up to four (depending on the speed of your CPU)
simultaneous"voices"
- Four equations to choose from for added hours of enjoyment
and/or torture of your pets, neighbors, and loved ones
- Standard Midifile support so you can load your funky output
into sequencers and notation software
- Preset system for real-time interactive noodling as well as the
ability to group, save, and reload "banks" of related behaviors
- Source code included for HMSL users and the curious
Two graphical control screens are used to operate MidiChaos.
With the default screen you can turn voices on and off, change
midi channels, assign an equation to a Midi parameter, tweak the
equations, force output into specific ranges, and turn midifile
recording on and off. The preset screen, accessable with the
screens menu or with the indicated command-key combinations,
allows you to save configurations of the main screen into preset
banks that can be stored on disk. By the way, pulling down the
menu while MidiChaos is running will suspend output until you let
go, so using the command keys is the better choice. Also, most
of the menu bars pertain to HMSL operation and are disabled for
this turnkey application in case you were wondering.
REQUIREMENTS:
- A Macintosh or PowerMac
On a 68040 machine, caches must be OFF!
- Apple's MIDI Manager
This is included. To install, put the MidiMangler into the
Extensions folder, the Apple Midi Driver and Patchbay Help files
into your System Folder, then put Patchbay wherever is
convienient (probably the Apple Menu) and reboot.
- MIDI Interface
MidiChaos is configured to use the Modem Port.
WARNINGS:
Inits may cause problems. The After Dark screen saver will
definately not work with MidiChaos (or HMSL) due to its impolite
allocation of Timer1.
MidiChaos works on any Mac but the large number of floating point
calculations involved make machines without an FPU grind to a
sickly crawl pretty quickly if you get into high speed or
multi-voice behaviors.
BEGINNING TUTORIAL:
Make sure you're properly connected to a MIDI synth of some sort.
Choose a patch for channel 1 with a short attack and decay.
Double-click the MidiChaos app to begin. The first thing you
see should be the main screen with several faders and buttons.
Click the "on" button next to the list of voices. You should
hear a pattern of notes slowly converge until reaching a steady
state repeating tone. If nothing happens check MIDI connections,
channel assignments, etc.
What you're hearing is the output of an equation I called "Trig"
which looks like this: x' = p1 sin(pi * x). This equation is
iterated (as are the others) i.e. a starting value is chosen for x,
then the result (x') is put back in and the equation re-evaluated
over and over. Each result - for these equations it will always
be between zero and one - is then scaled linearly to a value
between whatever range you select with the faders on the far
right of the screen. The default range for note values is 0-127,
the range of valid MIDI notes. If you drag the scaling faders
around you will hear the pitch move as well. The equation is
still cranking out the same number over and over, but you are
changing the range that the value is scaled to. This can be
useful if you want to force the output of one voice into a
specific register
When you are bored with the scaling faders, return them to the
default 0-127 range and then click the "Duration" button. You
will notice that the faders blinked and the titles over the
scaling faders have changed. What has happened is that the faders
have been re-assigned to affect duration rather than pitch. This
can be very confusing until you get used to it. The controls are
somewhat "soft" and act on different things depending which
controls have been selected. The heirarchy moves sort of from
left to right: first select a voice, then which Midi parameter
you want to work with, then which equation will drive that
parameter, and finally the values for the equation itself.
Next, grab the "Max Duration" fader and move it to somewhere
between 25 and 30. This is the simplest way to control the
overall speed of a voice's output. Now click on the "Note"
button again. Notice that the faders remembered where you left
them. All of the controls behave this way except the "x" fader
which we'll get to in a second and the special case of switching
equations. If your Midi instrument is velocity sensitive, click
on the "Velocity" button and move the Max velocity fader down a
bit. As with duration, this is a quick way to do primitive
mixing. Now click back and forth between the "Note", "Velocity",
and "Duration" buttons a bit, tweak the scaling values and get
used to how all of this works.
If you haven't gone insane yet, move the note range back to 0-127
again and the duration range to 0-20 or so. Click the "Note"
button, then grab the "x" fader and move it slightly, let go and
listen. Incedentally, you can click on the spaces above and
below the fader knobs for fine tuning. The "X" fader pokes it's
current value into the equation (replaces the current x), thus
destabilizing the equation. What you hear is the equation
falling back into stability. A point "attractor". A lot of
interesting converging patterns can be made this way. Try a
bunch of different x values, especially very low and very high
ones. Try doing the same thing with the velocity and duration
equations. Some of the patterns are very long so be patient.
When you're done, go back to the note parameter and move the "P1"
fader up a few points. At about 72 the pitches will start
oscillating. Depending on the value of "P1" (and "P2" which only
works with the Insect equation) the value of x will change. As
you increase "P1" through 82-85 (slowly!) you will begin to hear
a series of bifurcations (read your dynamical systems theory for
more on what that means to the mathematically inclined) then the
output will become chaotic. This is the really interesting thing
about the equations and the reason for making MidiChaos in the
first place. The value of x will always be between zero and one,
the pattern won't be random, and if I understand the theory
correctly, it will never repeat exactly. Instant chaotic melody
generator! At first it will probably sound non-sensical, but if
you listen for awhile, you'll start to recoginze pattern
tendencies for different values of "P1".
So, there you go, that's the basic stuff of MidiChaos. Try
hooking it up to a drum box and use the scaling fader to tune the
output to the note range of your box. MidiChaos can even swing
if you find the right parameter settings. Try some of the other
equations. Each time you switch, "P" and "X" will be reset to
nominal values, but only the "P" faders will move to reflect the
new values. The "X" fader will stay where it was. Try
assigning different equations to each Midi parameter. Some of
the equations attract to zero so if the output gets stuck, jiggle
the "X" fader. The insect equation is very strange and has a
complex phase space so don't worry if you get lost. It varies
widely and there are places where you may not hear anything, or
it might get stuck on some wild value. The other voices operate
identically; all of the controls will apply to whichever voice is
currently selected. Change Midi channels by clicking in the
upper or lower portion of the "Chan. #" box or by dragging up and
down.
MIDIFILE OUTPUT:
Clicking "Start" under "Midi Record" will pause output, prompt
you to type in a file name, and then begin keeping a copy of all
Midi messages in a RAM buffer. When you click "Stop", output
will pause again, and the file will be written. Beware of
filling up the buffer. MidiChaos will dynamically allocate
memory until you run out so the size of the buffer depends on
your machine.
PRESET SYSTEM:
When you get an interesting behavior going, switch screens and
hit "Save". This will store the complete state of all four
voices. Save a few others in this way and then experiment with
the controls. First, Last, Next, and Previous are pretty
self-explanatory. Load, Insert, and Delete work by selecting the
number of the preset you want (just like Chan. #) and then
clicking the appropriate button. Save and Load Bank will prompt
for a file and then do it. A bank has no fixed size so Last will
tell you how many you have. The maximum number of presets in one
bank is 100.
SOURCE CODE:
If you have a modern version of HMSL (4.09 or higher), you can
probably get MidiChaos loaded and running. Look in MidiChaosMain
for the assign and include commands.
When you've got the code compiled, type MC.INIT and then HMSL.
Don't forget MC.TERM when you are done. It's not the most heavily
commented code in the world but it will show you what I did, and
has quite a few involved and (slightly) flashy HMSL tricks
lurking around for the stout of heart.
READING:
Try James Gleick's Chaos for basic layperson's description of
dynamical systems and related topics.
SHAREWARE:
Though I certainly didn't do this project primarily for the cash,
if you're one of the strange few who find MidiChaos useful and/or
amusing, I certainly wouldn't mind finding a few bucks in the
mail at some point. I've been working on it for quite a while,
and especially for less experienced HMSL programmers, it can be
educational.
Thank You, Good Luck, Be Careful, Have Fun
darren gibbs
(updated and released 11/17/96)